<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<head>
<!--
Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.

This code is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License version 2 only, as
published by the Free Software Foundation.  Oracle designates this
particular file as subject to the "Classpath" exception as provided
by Oracle in the LICENSE file that accompanied this code.

This code is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
version 2 for more details (a copy is included in the LICENSE file that
accompanied this code).

You should have received a copy of the GNU General Public License version
2 along with this work; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.

Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
or visit www.oracle.com if you need additional information or have any
questions.
-->

</head>

<body bgcolor="white">

A package of the Java Image I/O API dealing with reading and writing
metadata.

<p>

When reading an image, its per-stream and per-image metadata is made
available as an <code>IIOMetadata</code> object.  The internals of
this object are specific to the plug-in that created it.  Its contents
may be accessed in the form of an XML <code>Document</code>, which is
implemented as a tree of <code>IIOMetadataNode</code> objects.

<p>

When writing an image, its metadata may be set by defining or
modifying an <code>IIOMetadata</code> object.  Such an object may be
obtained from an <code>ImageWriter</code> or
<code>ImageTranscoder</code> (from the
<code>javax.imageio</code> package).  Once such an object has
been obtained, its contents may be set of modified via a
<code>Document</code> consisting of <code>IIOMetadataNode</code>s.
The document format may optionally be described using an
<code>IIOMetadataFormat</code> object.

<p>

The format of the metadata contained in the XML <code>Document</code>
is identified by a string which appears as the root node of the tree
of <code>IIOMetadataNode</code> objects.  This string contains a version
number, e.g. "javax_imageio_jpeg_image_1.0".  Readers and writers may
support multiple versions of the same basic format and the Image I/O
API has methods that allow specifying which version to use by passing
the string to the method/constructor used to obtain an <code>IIOMetadata</code>
object.  In some cases, a more recent version may not be strictly
compatible with a program written expecting an older version (for
an example, see the Native Metadata Format section of the JPEG Metadata
Usage Notes below).

<p>

Plug-ins may choose to support a <A
HREF="doc-files/standard_metadata.html">standard (plug-in neutral)
format</A>.  This format does not provide lossless encoding of
metadata, but allows a portion of the metadata to be accessed in a
generic manner.

<p>

Each of the standard plug-ins supports a so-called "native" metadata
format, which encodes its metadata losslessly:

<ul>
<li>
<A HREF="doc-files/gif_metadata.html">
GIF metadata
</A>

<li>
<A HREF="doc-files/jpeg_metadata.html">
JPEG metadata
</A>

<li>
<A HREF="doc-files/png_metadata.html">
PNG metadata
</A>

<li>
<A HREF="doc-files/bmp_metadata.html">
BMP metadata
</A>

<li>
<A HREF="doc-files/wbmp_metadata.html">
WBMP metadata
</A>

</ul>

@since 1.4

</body>
</html>
